Home

Row

Total Languages

valueBox(total_lang, icon = "fa-language", color = "white")
24

Translated Messages

valueBox(total_trans_msg, icon = "fa-comment", color = "white")
71264

Untranslated Messages

valueBox(total_untrans_msg, icon = "fa-comment-slash", color = "white")
66566

Fuzzy Messages

valueBox(total_fuzzy_msg, icon = "fa-puzzle-piece", color = "white")
4753

Row

trans_stats <- SharedData$new(final_df)
# Filter Select Input - Language
filter_select(id = "language", 
              label = "Select Translation Language",
              sharedData = trans_stats, 
              group = ~language)

Row

Graph of Translated vs Untranslated Messages | Per Language

trans_stats <- plot_ly(trans_stats, x = ~package, y = ~translated_count, type = 'bar', name = 'Translated Messages')
trans_stats <- trans_stats %>% add_trace(y = ~untranslated_count, name = 'Untranslated Messages')
trans_stats <- trans_stats %>% add_trace(y = ~fuzzy_count, name = 'Fuzzy Messages')
trans_stats <- trans_stats %>% layout(yaxis = list(title = 'Message Count'), xaxis = list(title = "Packages"), barmode = 'group')
trans_stats

Row

Count of Translated Messages | Across Packages

complete_trans_df %>%
  reactable(
    .,
    pagination = TRUE,
    showPageSizeOptions = TRUE,
    highlight = TRUE,
    defaultSorted = "translated_count",
    defaultColDef = colDef(headerClass = "header", align = "left"),
    columns = list(
      package = colDef(
        name = "Package Name",
        width = 150,
        defaultSortOrder = "desc",
        filterable = TRUE,
      ),
      language = colDef(
        name = "Language",
        width = 150,
        filterable = TRUE,
      ),
      untranslated_count = colDef(
        show = FALSE
      ),
      translated_count = colDef(
        name = "Translated Message Count",
        defaultSortOrder = "desc",
        cell = function(value) {
          width <- paste0(value * 100 / max(complete_trans_df$translated_count), "%")
          value <- format(value, big.mark = ",")
          value <- format(value, width = 9, justify = "right")
          bar <- div(
            class = "bar-chart",
            style = list(marginRight = "6px"),
            div(class = "bar", style = list(width = width, backgroundColor = "#fc5185"))
          )
          div(class = "bar-cell", span(class = "number", value), bar)
        }
      )),
    compact = TRUE,
    bordered = TRUE,
    class = "categories-tbl"
  )

Count of Untranslated Messages | Across Packages

complete_untrans_df %>%
  reactable(
    .,
    pagination = TRUE,
    showPageSizeOptions = TRUE,
    highlight = TRUE,
    defaultSorted = "untranslated_count",
    defaultColDef = colDef(headerClass = "header", align = "left"),
    columns = list(
      package = colDef(
        name = "Package Name",
        width = 150,
        defaultSortOrder = "desc",
        filterable = TRUE,
      ),
      language = colDef(
        name = "Language",
        width = 150,
        filterable = TRUE,
      ),
      translated_count = colDef(
        show = FALSE
      ),
      untranslated_count = colDef(
        name = "Untranslated Message Count",
        defaultSortOrder = "desc",
        cell = function(value) {
          width <- paste0(value * 100 / max(complete_untrans_df$untranslated_count), "%")
          value <- format(value, big.mark = ",")
          value <- format(value, width = 9, justify = "right")
          bar <- div(
            class = "bar-chart",
            style = list(marginRight = "6px"),
            div(class = "bar", style = list(width = width, backgroundColor = "#3fc1c9"))
          )
          div(class = "bar-cell", span(class = "number", value), bar)
        }
      )),
    compact = TRUE,
    bordered = TRUE,
    class = "categories-tbl"
  )

Row

Percentage Distribution of Message Translation | Across Packages

final_df %>%
  reactable(
    .,
    pagination = TRUE,
    showPageSizeOptions = TRUE,
    highlight = TRUE,
    defaultColDef = colDef(headerClass = "header", align = "left"),
    columns = list(
      package = colDef(
        name = "Package Name",
        width = 150,
        defaultSortOrder = "desc",
        filterable = TRUE,
      ),
      language = colDef(
        name = "Language",
        width = 150,
        filterable = TRUE,
      ),
      translated_count = colDef(
        show = FALSE
      ),
      untranslated_count = colDef(
        show = FALSE
      ),
      fuzzy_count = colDef(
        show = FALSE
      ),
      pc_trans_count = colDef(
        name = "Translated Message",
        cell = function(value) {
          value <- paste0(format(round(value * 100, 2), nsmall = 1), "%")
          value <- format(value, width = 9, justify = "right")
          bar <- div(
            class = "bar-chart",
            style = list(marginRight = "6px"),
            div(class = "bar", style = list(width = value, backgroundColor = "#fc5185"))
          )
          div(class = "bar-cell", span(class = "number", value), bar)
        }
      ),
      pc_untrans_count = colDef(
        name = "Untranslated Message",
        cell = function(value) {
          value <- paste0(format(round(value * 100, 2), nsmall = 1), "%")
          value <- format(value, width = 9, justify = "right")
          bar <- div(
            class = "bar-chart",
            style = list(marginRight = "6px"),
            div(class = "bar", style = list(width = value, backgroundColor = "#3fc1c9"))
          )
          div(class = "bar-cell", span(class = "number", value), bar)
        }
      ),
      pc_fuzzy_count = colDef(
        name = "Fuzzy Message",
        cell = function(value) {
          value <- paste0(format(round(value * 100, 2), nsmall = 1), "%")
          value <- format(value, width = 9, justify = "right")
          bar <- div(
            class = "bar-chart",
            style = list(marginRight = "6px"),
            div(class = "bar", style = list(width = value, backgroundColor = "#241327"))
          )
          div(class = "bar-cell", span(class = "number", value), bar)
        }
      )),
    compact = TRUE,
    bordered = TRUE,
    class = "categories-tbl"
  )

R Translation Teams

Row

R Translation Teams | Contact Details

translation_teams %>%
  reactable(
    .,
    pagination = TRUE,
    showPageSizeOptions = TRUE,
    highlight = TRUE,
    defaultColDef = colDef(headerClass = "header", align = "left"),
    columns = list(
      Language = colDef(
        name = "Translation Languages",
        filterable = TRUE,
      ),
      Members = colDef(
        name = "R-Core Lead Maintainers",
        filterable = TRUE,
      ),
      Contact = colDef(
        name = "Email Contacts",
        filterable = TRUE,
      )),
    compact = TRUE,
    bordered = TRUE,
    class = "categories-tbl"
  )